草庐IT

C++11 make_shared 实例化

全部标签

java - 在层次结构中为每个类创建一个对象实例

我在面试中被问到这个问题。有3个类A,BextendsA&CextendsB.我们必须设计符合这些约束的这些类客户端只能实例化A的一个实例,B的一个实例&一个C的实例使用默认构造函数new关键字。尝试创建任何这些类的另一个实例将导致异常。类的设计者必须强制执行上述2条规则,以便客户隐含地体验上述规则(即客户不应该有责任遵守上述规则)。我建议使用staticMap的方法.所以例如当有人调用newB()它会检查是否map.contains(B.class).如果是,则抛出异常,如果不是,则将实例保存在map中,然后创建对象。但下一个问题是我如何在每个类(class)上实现这种方法?按照我的

java - 为什么有些类在创建实例时不需要单词 "New"?

我是Java新手。让我感到困惑的一件事是为什么有些类需要new来实例化,而其他一些类不需要new来实例化。比如我在看log4j,它不需要new。//getaloggerinstancenamed"com.foo"Loggerlogger=Logger.getLogger("com.foo");logger.setLevel(Level.INFO);为什么其他一些类需要new?例如,一个Employee类:EmployeeX=newEmployee(John);X.getwork();等等等等为什么我们没有说Loggerlogger=newLogger(...);?以及为什么即使没有ne

java - 是否可以有多个静态变量实例

静态变量只有实例(即它们是类的一部分)。例如:Math.pi有没有办法让静态变量有多个实例?听说有类加载器相关的东西? 最佳答案 如果您发现您需要一个静态变量的多个实例,这强烈表明您一开始就不应该使用静态变量。是的,如果同一个类在不同的类加载器中加载,那么该类的每个副本都会有自己的静态。但是,唯一可以静态引用这些静态变量的代码将是由同一个类加载器加载的类。当然,该代码只会(静态地)在该类的一个副本中看到静态信息。所以你可能还没有取得很多成就。与其乱搞类加载器,不如重构代码,将静态变量转换为实例变量。

java - 确定一个类对象是否是一个抽象类的实例

我正在尝试确定通用类对象是否是抽象类的实例。到目前为止,我运气不佳。下面是我正在尝试使用的代码。AbstractActivity是我从中扩展一些Activity的父类的名称。publicvoidstartActivity(Intentintent){ComponentNamename=intent.getComponent();if(name!=null){Classcls=null;try{cls=Class.forName(name.getClassName());if(cls.isInstance(AbstractActivity));{//dosomething}else{su

java - 在 Eclipse 中将静态方法重构为实例方法

我该如何重构classPlugh{staticvoidfoo(Barbar);}进入classBar{voidfoo();}使用Eclipse?IOW将静态方法变成参数之一的实例方法。 最佳答案 删除“static”关键字,然后进行“MoveMethod”重构。它应该提供“Bar”作为目标类。(Eclipse只对非静态方法执行此操作对我来说似乎很疯狂,但这就是它的工作方式。对我来说这似乎是一个错误。也许我应该做出贡献来修复它,而不是仅仅提示关于它!;-) 关于java-在Eclipse中

java - 在 Java 中设置实例?

Java定义了一个Set接口(interface),其中contains()定义如下:Returnstrueifthissetcontainsthespecifiedelement.Moreformally,returnstrueifandonlyifthissetcontainsanelementesuchthat(o==null?e==null:o.equals(e)).Collection接口(interface)定义了contains()如下:Returnstrueifthiscollectioncontainsthespecifiedelement.Moreformally,

java - 无法访问类型 ... 的封闭实例

出于教育目的,我尝试制作一个服务器和客户端,其中服务器从多个客户端接收数据并回显每条消息。问题是当我试图让服务器一次向所有客户端发送回显时。publicclassSocketServer{ArrayListts=newArrayList();ServerSocketserv;staticMainServerThreadmst=newMainServerThread();//^IDE(eclipse)underlinesthisastheproblemSocketServer(){EventQueue.invokeLater(mst);}publicstaticvoidmain(Stri

c# - 为什么我们不能从 C# 中的枚举实例访问枚举值?

这可能会被否决,但这个问题从昨天开始就一直困扰着我。直到我找到一个链接,然后我才知道我并不是真的疯了哈哈:Enumasinstancevariables我基本上是在问与OP问题相反的问题。鉴于:enumCoffee{BIG,SMALL}publicclassMyClass{privateCoffeecoffee;//Constructoretc.}尽管这是Java并且枚举在两种语言中确实有些不同我不能在C#中执行coffee.BIG或coffee.BIG.SMALL(尽管在阅读时意义不大,考虑到coffee是Coffee类型应该是可能的)? 最佳答案

java - Guice 可以根据一个参数自动创建不同类的实例吗?

一个标准的对象工厂可能是这样的:interfaceI{...}classAimplementsI{...}classBimplementsI{...}classIFactory{IgetI(inti){switch(i){case1:returnnewA();default:returnnewB();}}}是否可以设置绑定(bind)以便为我完成切换,即我所做的只是调用getInstance或注入(inject)?我在看辅助注入(inject),但这似乎是不同的主题:https://code.google.com/p/google-guice/wiki/AssistedInject

java - 无法实例化 Log4j appender

我正在学习有关Web应用程序中Log4j日志记录的教程。这是我的log4j.properties文件:#logtoconsolelog4j.rootLogger=INFO,,demoappenderlog4j.appender.demoappender=org.apache.log4j.ConsoleAppenderlog4j.appender.demoappender=System.outlog4j.appender.demoappender.layout=org.apache.log4j.PatternLayoutlog4j.appender.demoappender.layout